Manual de utilizacion para la version 0.4
-----------------------------------------

RESUMEN DE APLICACIONES:
  
  * Osciloscopio     : Obtener datos de un robot
  * Osciloscopio-file: Obtener datos de un robot a partir de su estructura y
                       un fichero .mvm
                       
  * View-file   : Visualizar robot virtual a partir de estructura y fichero .mvm
                  PUEDE VISUALIZAR MULTIPLES CONFIGURACIONES
  * View        : Visualizar robot virtual a partir de generadores sinusoidales
  * View-fitness: Visualizar robot virtual mostrando toda la informacion en 
                  cada ciclo. Al final del intervalo se muestra el fitness
                  solicitado
  * View-file-fitness: Visualizar robot virtual mostrando toda la informacion
                       en cada ciclo. El robot se obtiene a partir de ficheros
                       .mvm
 
  * sin2file: Crear un fichero .mvm a partir de generadores sinusoidales
  * Pn      : Configuraciones Pn. Calcular los parametros de los generadores 
              para el espacio homogeneo: Todos los modulos tienen mismo A,T,O,DF
  * PYn     : Configuraciones PYn. Calcular los parametros de los generadores 
              para el espacio homogeneo: Av,Ah,Ov,Oh,DFv,DFh,DFvh,T

----------------------------
 Obtencion de DATOS:
----------------------------

  * Osciloscopio-file: Se reproducen la secuencia que se encuentra en un 
     fichero .mvm sobre un robot con estructura Pn o PYn. Se recolectan todos
     los datos en ficheros OCTAVE:
     
      OSC_data_rot.m   : Rotacion del modulo de referencia: pitch, yaw, roll
      OSC_data_wrot.m  : Velocidad de rotacion del mod. de ref.
      OSC_data_rcm.m   : Posicion del mod. de ref. x,y,z
      OSC_data_vcm.m   : Velocidad del mod. de ref.
      OSC_data_phi.m   : Variaciones angulares del servo 
      OSC_data_w.m     : Velocidades del servo
      OSC_data_F.m     : Posiciones de refencia enviadas al servo

      -Ejemplo de utiliacion: 
      
      $ ./Osciloscopio-file 1 4 Pn PPP.mvm
      En este ejemplo las medidas se empiezan a tomar a partir del periodo 1,
      y durante 4 periodos. El paramero Pn sirve para indicar que la 
      configuracion a simular es de tipo PPPPPP... (pitch)
      
      $ ./Osciloscopio-file 1 1 PYn PYP.mvm
      En este ejemplo se especifica una estructura de tipo PYn (Pitch-yaw...)
      
  * Osciloscopio: Idem, pero obteniendo el robot de la linea de comandos
     Ej.
        $  ./Osciloscopio 1 2 `./Pn 2 40 10 120 0`    
      
      
-----------------------------
  VISUALIZACION DE ROBOTS:
-----------------------------

  * View-file: Reproducir secuencia .mvm sobre un robot virtual. Solo se 
    visualiza el robot. No se hace ningun tipo de calculos. PERMITE VISUALIZAR
    SIMULTANEAMENTE VARIOS ROBOTS.
    
    -Ademas del fichero .mvm se debe indicar que tipo de estrucura es: Pn o PYn
    -Ejemplo de uso:
    
        $ ./View-file Pn PP.mvm
        Visualizar un robot, con estructura Pn usando el fichero PP.mvm
        
        $ ./View-file Pn PP.mvm PYn PYP.mvm 20
        Visualizar dos robots. El primero con estructura Pn y fichero PP.mvm,
        el segundo con estructura PYn y fichero PYP.mvm. Ls separacion entre
        ambos robots es de 20 cm.
        
  * View:  Visualizar robot virtual a partir de generadores sinusoidales. Solo
     se visualiza el robot. No se hace ningun calculo.
     
     -Ejemplo de uso:
     
         $ ./View `./PYn 3 10 45 45 0 0 0 0 90`
         $ ./View `./Pn 2 40 10 120 0`
         
  * View-fitness:  Visualizar robot virtual mostrando toda la informacion en 
      cada ciclo. Al final del intervalo se muestra el fitness solicitado    
     
     -Ejemplo de uso: 
     
        $ ./View-fitness 1 2 DY `./PYn 3 10 45 45 0 0 0 0 90`
        $ ./View-fitness 1 1 VY `./Pn 2 40 10 120 0`
        
      -El primer parametro es el ciclo inicial, a partir del cual empezar a
        tomar las medidas. El segundo es el numero de ciclos sobre los que
        realizar los calculos.
        
      -El tercer paramero es la funcion de fitness que se quiere calcular:
         ->DX,DY --> Pasos en las direcciones X,Y
         ->VX,VY --> Velocidades en X e Y
         ->YAW,ROLL --> YAW y ROLL del robot (modulo de referencia)
         ->WYAW, WROLL --> Velocidades de yaw y roll    
  
   * View-file-fitness: Idem que View-fitness pero leyendo desde un fichero
   
         $ ./View-file-fitness 1 2 Pn test.mvm DX
  
        
--------------------------------
  UTILIDADES:
--------------------------------

  * sin2file: Generar un fichero .mvm a partir de generadores sinusoidales
    -Ejemplo de uso:
     
          $ ./sin2file hola.mvm `./PYn 3 10 45 45 0 0 0 0 90`
          Se crea el fichero hola.mvm
          
          $ ./sin2file `./PYn 3 10 45 45 0 0 0 0 90`
          Se genera un nombre a partir de los parametros de los generadores
          
  * Pn --> Generar los parametros de los generadores sinusoidales a partir
       de los parametros pasados. Esta pensado para estructuras Pn, 
       consitutidas por n modulos P (pitch) encadenados. Los parametros son:
       
       N: Numero de modulos
       A: La amplitud (la misma para todos)
       T: El periodo (mismo para todos)
       F: Diferencia de fase entre modulos consecutivos. La fase del primer
          modulo es 0
       O: offset (mismo para todos).
       
       -Ejemplo de uso:  $ Pn_param 2 40 10 120 0
       
       -Esta utilidad permite trabajar muy facilmente con el grupo Homogeneo
       
  * PYn --> Generar los parametros de los generadores sinusoidales a partir de
      los parametros pasados. Esta pensado para estructuras PYn, constituidas
      por modulos P (pitch) y Y (yaw) alternados. Los parametros son:
      
        N: Numero de modulos totales
        T: periodo (mismo para todos)
        Av: Amplitud de los modulos P
        Ah: Amplitud de los modulos Y
        Ov: Offset de los modulos P
        Oh: Offset de los modulos Y
        DFv: Diferencia de fase entre dos modulos P consecutivos
        DFh: Diferencia de fase entre dos modulos Y consecutivos
        DFvh: Diferencia de fase entre los modulos P y los Y
        
      -Ejemplo de uso:  $ PYn 3 10 45 45 0 0 0 0 90
          
      -Esta utilidad permite trabajar muy facilmente con el grupo homogeneo de
        las configuracioens PYn, donde se tratan por separado los modulos
        verticales y los horizontales.
        
------------------------
 ALGORITMOS GENETICOS
------------------------

   
   * Cromosomas de tipo RAW: contienen las muestras
      -Se pasa como parametro adicional el numero de muestras
      
      $ ./GA Pn 2 DY 1 2 10 10 RAW 10  
      
   * Cromosoma T_DF_A: El clasico empleado para estructuras Pn
   
      $  ./GA Pn 3 DY 1 2 10 10 T_DF_A
      
   * Cromosoma T_Av_Ah_DFv_DFh_DFvh: El clasico para estructuras PYn  
   
       $  ./GA PYn 3 DY 1 2 10 10 T_Av_Ah_DFv_DFh_DFvh
       
   * Cromosoma: Ti_Ai_Oi_Fi : Libertad en todos los parametros

       $ ./GA Pn 2 VY 1 2 10 10 Ti_Ai_Oi_Fi
